Package com.iqbon.jcms.web

Source Code of com.iqbon.jcms.web.UserAction

package com.iqbon.jcms.web;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.iqbon.jcms.domain.User;
import com.iqbon.jcms.service.UserService;
import com.iqbon.jcms.util.JCMSProperties;
import com.iqbon.jcms.util.KeyConstant;
import com.iqbon.jcms.web.util.JCMSAction;

@Controller
@Scope("prototype")
@RequestMapping("/admin/user")
public class UserAction extends JCMSAction {

  private Logger logger = Logger.getLogger(UserAction.class);
  @Autowired
  private UserService userService;

  /**
   * 用户登录
   * @param username
   * @param password
   * @param authCode
   */
  @RequestMapping(value = "/login.do", method = RequestMethod.POST)
  public ModelAndView login(@RequestParam("userName") String userName,
      @RequestParam("password") String password, @RequestParam("authCode") String authCode,
      @RequestParam(value = "remember", required = false) boolean remember,
      HttpServletRequest request,
      HttpServletResponse response) {
    ModelAndView view = new ModelAndView();
    User user = userService.userValidation(userName, password);
    if (user == null) {//用户不存在
        view.setViewName(KeyConstant.ERROR_PAGE);
      } else {
      JCMSProperties propertiy = JCMSProperties.getInstance();
        HttpSession session = request.getSession();
        if (authCode.equals(session.getAttribute(KeyConstant.SESSION_KEY_AUTH_CODE))) {
        if (BooleanUtils.isTrue(remember)) {//保存记住用户名的cookie
            Cookie cookie = new Cookie(KeyConstant.COOKIE_KEY_USERNAME, userName);
            cookie.setMaxAge(3600 * 24 * 7);
          cookie.setPath(propertiy.getHost());
            response.addCookie(cookie);
          }
          session.removeAttribute(KeyConstant.SESSION_KEY_AUTH_CODE);
          session.setAttribute(KeyConstant.SESSION_KEY_USER, user);
          view.setViewName("redirect:/admin/common/index.do");
        logger.info("user:" + user.getUserName() + " 登录");
      } else {//验证码错误
        errorMav.setErrorInfo("验证码错误");
        logger.warn("user:" + user.getUserName() + "验证码错误");
        return errorMav;
        }
      }     
    return view;
  }

  /**
   * 从session中获取用户信息
   * @return
   */
  @RequestMapping(value = "/userSessionInfo.do")
  public ModelAndView getUserInfoFromSession(HttpSession session) {
    ModelAndView view = new ModelAndView();
    view.setViewName(KeyConstant.ADMIN_JSP_PATH + "top");
    view.addObject("user", session.getAttribute(KeyConstant.SESSION_KEY_USER));
    return view;
  }

  /**
   * 根据用户名获取用户信息
   * @param userName
   * @return
   */
  @RequestMapping(value = "/userInfo.do")
  public ModelAndView getUserInfoByUserName(@RequestParam("userName")
  String userName) {
    ModelAndView view = new ModelAndView();
    User user = userService.getUserInfoByUserName(userName);
    view.addObject("user", user);
    view.setViewName(KeyConstant.ADMIN_JSP_PATH + "user");
    return view;
  }
 
  /**
   * 修改用户信息
   * @param userName
   * @param email
   * @param telephone
   * @param mobile
   * @return
   */
  @RequestMapping(value = "/modifyUserInfo.do")
  public ModelAndView modifyUserInfo(@RequestParam("userName")
  String userName, @RequestParam("nickname")
  String nickname, @RequestParam(value = "email", required = false)
  String email, @RequestParam(value = "telephone", required = false)
  String telephone, @RequestParam(value = "mobile", required = false)
  String mobile) {

    User user = new User();
    user.setUserName(userName);
    user.setNickName(nickname);
    user.setEmail(email);
    user.setTelephone(telephone);
    user.setMobile(mobile);
    int number = userService.modifyUserInfo(user);
    if (number > 0) {
      ModelAndView view = new ModelAndView();
      view.addObject("user", user);
      view.setViewName(KeyConstant.ADMIN_JSP_PATH + "user");
      return view;
    } else {
      return errorMav;
    }
  }

  /**
   * 修改用户密码
   * @param userName
   * @param password
   * @return
   */
  @RequestMapping(value = "/modifyUserPassword.do")
  public ModelAndView updatePassword(@RequestParam("userName")
  String userName, @RequestParam("password")
  String password, @RequestParam("oldPassword")
  String oldPassword) {
    User user = userService.updatePasswordByUserName(userName, password, oldPassword);
    if (null == user) {
      return errorMav;
    } else {
      ModelAndView view = new ModelAndView();
      view.addObject("userName", user.getUserName());
      view.setViewName(KeyConstant.ADMIN_JSP_PATH + "updatePassword");
      return view;
    }
  }

  /**
   * 显示修改用户密码的页面
   * @param userName
   * @return
   */
  @RequestMapping(value = "/showModifyUserPassword.do")
  public ModelAndView showUpdatePassword(@RequestParam("userName")
  String userName) {
    ModelAndView view = new ModelAndView();
    view.addObject("userName", userName);
    view.setViewName(KeyConstant.ADMIN_JSP_PATH + "updatePassword");
    return view;
  }

  /**
   * 退出登录
   * @param username
   * @return
   */
  @RequestMapping("/logout.do")
  public String logout(@RequestParam("userName")
  String username, HttpServletRequest request) {
    HttpSession session = request.getSession();
    String url = "redirect:/login.htm";
    if (StringUtils.isEmpty(username) || session.getAttribute(KeyConstant.SESSION_KEY_USER) == null) {
      return url;
    } else {
      session.removeAttribute(KeyConstant.SESSION_KEY_USER);
      return url;
    }
  }
}
TOP

Related Classes of com.iqbon.jcms.web.UserAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.